package Question2_4; import CareerCupLibrary.AssortedMethods; import CareerCupLibrary.LinkedListNode; public class Question { private static LinkedListNode addLists(LinkedListNode l1, LinkedListNode l2, int carry) { LinkedListNode result = new LinkedListNode(carry, null, null); int value = carry; if (l1 != null) { value += l1.data; } if (l2 != null) { value += l2.data; } result.data = value % 10; if (l1 != null || l2 != null || value >= 10) { LinkedListNode more = addLists(l1 == null ? null : l1.next, l2 == null ? null : l2.next, value >= 10 ? 1 : 0); result.setNext(more); } return result; } public static int linkedListToInt(LinkedListNode node) { int value = 0; if (node.next != null) { value = 10 * linkedListToInt(node.next); } return value + node.data; } public static void main(String[] args) { LinkedListNode list1 = AssortedMethods.randomLinkedList(5, 0, 9); LinkedListNode list2 = AssortedMethods.randomLinkedList(5, 0, 9); LinkedListNode list3 = addLists(list1, list2, 0); System.out.println(" " + list1.printForward()); System.out.println("+ " + list2.printForward()); System.out.println("= " + list3.printForward()); int l1 = linkedListToInt(list1); int l2 = linkedListToInt(list2); int l3 = linkedListToInt(list3); System.out.print(l1 + " + " + l2 + " = " + l3 + "\n"); System.out.print(l1 + " + " + l2 + " = " + (l1 + l2)); } }